/* =======================================================================================================
 *              <<Branchitech>> Software License v1.0
 * =======================================================================================================

 * 版权所有  (c) 2005 <<Branchitech>>

 * Copyright (c) 2005 <<Branchitech>> All rights reserved.

 * <<Branchitech>> 对由其自主开发或和他人共同开发的所有内容和服务拥有全部知识产权，

 * 此等知识产权受到适用的知识产权（版权-著作权、商标权、专利权、非专利技术等）法律

 * 和其他法律及相关国际条约的保护。

 * 未经授权许可，任何个人、单位、组织等不得对本公司的软件产品、程序（包括各种可执行文件、源码、其他文件、

 * 开发文档、技术手册等）进行编译、反编译、再编译、出售、复制、传播、破坏、仿制、非法占有等。

 * 本公司保留一切追究侵犯人法律责任之权利。其他语言之版权声明以此汉语版为准。

 * www.<<Branchitech>>.com

 * ======================================================================================================
 */
package net.zoneland.zrdp.framework.web.service;

import net.zoneland.uniflow.client.ReadObject;
import net.zoneland.uniflow.client.TaskObject;

import java.util.List;

/**
 * 统一通知服务接口
 */
public interface NotifyService {

    /**
     * 发送待办邮件.
     * @param taskObjects 待办信息.
     * @return List<TaskObject>
     **/
    List<TaskObject> sendTaskObjectEmail(final List<TaskObject> taskObjects);

    /**
     * 发送待阅邮件.
     * @param readObjects 待阅信息.
     * @return List<ReadObject>
     **/
    List<ReadObject> sendReadObjectEmail(final List<ReadObject> readObjects);
    /**
     * 邮件通知，根据邮箱地址发送
     * @param emails 接收人邮箱
     * @param title 标题
     * @param content 内容
     */
    void emailNotifyByEmails(final List<String> emails, final String title, final String content);

    /**
     * 邮件通知，根据用户id发送
     * @param userIds 接收人用户id
     * @param title 标题
     * @param content 内容
     */
    void emailNotifyByUserIds(final List<String> userIds, final String title, final String content);

    /**
     * 短信通知，根据手机号码发送
     * @param phones 接收人手机号码
     * @param content 内容
     */
    void smsNotifyByPhones(final List<String> phones, final String content);

    /**
     * 短信通知，根据用户id发送
     * @param userIds 接收人用户id
     * @param content 内容
     */
    void smsNotifyByUserIds(final List<String> userIds, final String content);

}
